Emit preedit_start/_end as appropriate. (#521934, Huang Peng)
authorMatthias Clasen <mclasen@redhat.com>
Sat, 15 Mar 2008 04:24:50 +0000 (04:24 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Sat, 15 Mar 2008 04:24:50 +0000 (04:24 +0000)
2008-03-15  Matthias Clasen  <mclasen@redhat.com>

        * gtk/gtkimcontextsimple.c: Emit preedit_start/_end as
        appropriate.  (#521934, Huang Peng)

svn path=/trunk/; revision=19878

ChangeLog
gtk/gtkimcontextsimple.c

index e48fc2dc930886160d302c7ec2788de04f426c8d..de6b16ce4e0b6130af22a7b955effdd8ca920867 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-03-15  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkimcontextsimple.c: Emit preedit_start/_end as
+       appropriate.  (#521934, Huang Peng)
+
 2008-03-14  Michael Natterer  <mitch@imendio.com>
 
        * gdk/gdkspawn.h
index 20624cf8ab3b2cbde6aec37a1fc20c3e3ddcab66..e8bc4cd65246f0328896bc087f4b393f9ccea68d 100644 (file)
@@ -161,6 +161,7 @@ gtk_im_context_simple_commit_char (GtkIMContext *context,
       context_simple->tentative_match = 0;
       context_simple->tentative_match_len = 0;
       g_signal_emit_by_name (context_simple, "preedit_changed");
+      g_signal_emit_by_name (context_simple, "preedit_end");
     }
 
   g_signal_emit_by_name (context, "commit", &buf);
@@ -724,6 +725,7 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
              context_simple->compose_buffer[0] = 0;
              
              g_signal_emit_by_name (context_simple, "preedit_changed");
+             g_signal_emit_by_name (context_simple, "preedit_end");
            }
 
          return TRUE;
@@ -733,7 +735,7 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
     }
 
   /* Ignore modifier key presses */
-  for (i=0; i < G_N_ELEMENTS (gtk_compose_ignore); i++)
+  for (i = 0; i < G_N_ELEMENTS (gtk_compose_ignore); i++)
     if (event->keyval == gtk_compose_ignore[i])
       return FALSE;
 
@@ -786,6 +788,9 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
        }
 
       g_signal_emit_by_name (context_simple, "preedit_changed");
+
+      if (!context_simple->in_hex_sequence)
+        g_signal_emit_by_name (context_simple, "preedit_end");
       
       return TRUE;
     }
@@ -819,6 +824,7 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
       context_simple->modifiers_dropped = FALSE;
       context_simple->tentative_match = 0;
 
+      g_signal_emit_by_name (context_simple, "preedit_start");
       g_signal_emit_by_name (context_simple, "preedit_changed");
   
       return TRUE;
@@ -877,6 +883,9 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
          
          g_signal_emit_by_name (context_simple, "preedit_changed");
 
+         if (!context_simple->in_hex_sequence)
+           g_signal_emit_by_name (context_simple, "preedit_end");
+
          return TRUE;
         }
     }
@@ -914,6 +923,7 @@ gtk_im_context_simple_reset (GtkIMContext *context)
       context_simple->tentative_match = 0;
       context_simple->tentative_match_len = 0;
       g_signal_emit_by_name (context_simple, "preedit_changed");
+      g_signal_emit_by_name (context_simple, "preedit_end");
     }
 }